-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove lambdas from Arc that are used at startup #45741
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! I added a few comments.
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/impl/ComputingCache.java
Outdated
Show resolved
Hide resolved
predicate = predicate.and(new Predicate<>() { | ||
@Override | ||
public boolean test(ObserverMethod<? super T> observerMethod) { | ||
return isNotTxObserver(observerMethod); | ||
} | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't you generate a bit more allocations this way. I would expect notify()
to be called quite often?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason I drop the method reference is that it brings some overhead at startup. I doubt the allocations make much of a difference with this change, but I could always check the flamegraph
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I wouldn't have mentioned it but I wonder if it might not be a hot path if you have a lot of events.
@mkouba would know better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You know that I don't quite understand your "holy war" against lambdas ;-), but if really necessary pls use cached predicates (static final fields) where possible - see my comments.
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/impl/EventImpl.java
Outdated
Show resolved
Hide resolved
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/impl/EventImpl.java
Outdated
Show resolved
Hide resolved
independent-projects/arc/runtime/src/main/java/io/quarkus/arc/impl/EventImpl.java
Outdated
Show resolved
Hide resolved
for (LazyValue<V> value : map.values()) { | ||
action.accept(value.get()); | ||
} | ||
map.forEach(new BiConsumer<K, LazyValue<V>>() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm curious how much better this appoach could be. From what I see in the ConcurrentHashMap
the ValuesView
returned from the values()
is cached and here you create a new BiConsumer
for every invocation. There is also no lambda here...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, this wasn't meant to remove lambdas, it was meant to take advantage of the better access that forEach
has for maps. But I'll remove it as to not confuse the scope of the PR
This attritional battle is now a lot more targeted and I only do it for places that I have hard evidence based on the startup flamegraphs |
I'd be curious about the specific number of milliseconds this particular change results in... |
None. But if all the changes are added up, they do make a difference (more from @franz1981 on that soon) |
Can't wait to hear about it! |
This comment has been minimized.
This comment has been minimized.
Something is definitely fishy with the failures... I need to check them out
…On Tue, Jan 21, 2025, 18:54 quarkus-bot[bot] ***@***.***> wrote:
Status for workflow Quarkus CI
This is the status report for running Quarkus CI on commit 16a6d14
<16a6d14>
.
Failing Jobs
Status Name Step Failures Logs Raw logs Build scan
✖ JVM Tests - JDK 17 Build Failures
<#m_-8555759688960981563_user-content-test-failures-job-35931424047> Logs
<https://github.com/quarkusio/quarkus/actions/runs/12887555786/job/35931424047> Raw
logs
<https://github.com/quarkusio/quarkus/commit/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/checks/35931424047/logs>
🚧
✖ JVM Tests - JDK 21 Build Failures
<#m_-8555759688960981563_user-content-test-failures-job-35931424923> Logs
<https://github.com/quarkusio/quarkus/actions/runs/12887555786/job/35931424923> Raw
logs
<https://github.com/quarkusio/quarkus/commit/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/checks/35931424923/logs>
🚧
✖ JVM Tests - JDK 17 Windows Build Failures
<#m_-8555759688960981563_user-content-test-failures-job-35931425318> Logs
<https://github.com/quarkusio/quarkus/actions/runs/12887555786/job/35931425318> Raw
logs
<https://github.com/quarkusio/quarkus/commit/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/checks/35931425318/logs>
🚧
Full information is available in the Build summary check run
<https://github.com/quarkusio/quarkus/runs/35944799131>.
Failures ⚙️ JVM Tests - JDK 17 #
<#m_-8555759688960981563_user-content-test-failures-job-35931424047>
- Failing: extensions/narayana-jta/deployment ! Skipped: extensions/agroal/deployment extensions/elytron-security-jdbc/deployment extensions/flyway/deployment and 157 more
📦 extensions/narayana-jta/deployment
✖
io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest.testObserverNotificationWithErrorThrowing
line 37 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest&tests.test=testObserverNotificationWithErrorThrowing>
- More details
<https://github.com/quarkusio/quarkus/runs/35944799131#user-content-test-failure-io.quarkus.narayana.observers.transactionalobserverserrorhandlingtest-1>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/extensions/narayana-jta/deployment/src/test/java/io/quarkus/narayana/observers/TransactionalObserversErrorHandlingTest.java#L37>
java.lang.IllegalStateException: This is an expected exception within test
at io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest$ObservingBean.observeAfterSuccess2(TransactionalObserversErrorHandlingTest.java:55)
at io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest_ObservingBean_Observer_observeAfterSuccess2_IsloNAHtd50I1hUXXwUHSoMZT4o.notify(Unknown Source)
at io.quarkus.arc.impl.EventImpl$Notifier.notifyObservers(EventImpl.java:365)
at io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:347)
at io.quarkus.arc.impl.EventImpl.fire(EventImpl.java:81)
at io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest.testObserverNotificationWithErrorThrowing(TransactionalObserversErrorHandlingTest.java:37)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
✖
io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionFailed
line 66 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversTest&tests.test=testTransactionFailed>
- More details
<https://github.com/quarkusio/quarkus/runs/35944799131#user-content-test-failure-io.quarkus.narayana.observers.transactionalobserverstest-2>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/extensions/narayana-jta/deployment/src/test/java/io/quarkus/narayana/observers/TransactionalObserversTest.java#L66>
jakarta.transaction.NotSupportedException: BaseTransaction.checkTransactionState - ARJUNA016051: thread is already associated with a transaction!
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.begin(BaseTransaction.java:51)
at io.quarkus.narayana.jta.runtime.NotifyingUserTransaction.begin(NotifyingUserTransaction.java:24)
at jakarta.transaction.NarayanaJtaProducers_ProducerMethod_userTransaction_7zPXeUWVelZ-AzCmqVtVVw94OtA_ClientProxy.begin(Unknown Source)
at io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionFailed(TransactionalObserversTest.java:66)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at io.quarkus.test.QuarkusUnitTest.runExtensionMethod(QuarkusUnitTest.java:513)
at io.quarkus.test.QuarkusUnitTest.interceptTestMethod(QuarkusUnitTest.java:427)
✖
io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionSuccessful
line 53 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversTest&tests.test=testTransactionSuccessful>
- More details
<https://github.com/quarkusio/quarkus/runs/35944799131#user-content-test-failure-io.quarkus.narayana.observers.transactionalobserverstest-3>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/extensions/narayana-jta/deployment/src/test/java/io/quarkus/narayana/observers/TransactionalObserversTest.java#L53>
org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31)
at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183)
at io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionSuccessful(TransactionalObserversTest.java:53)
------------------------------
⚙️ JVM Tests - JDK 21 #
<#m_-8555759688960981563_user-content-test-failures-job-35931424923>
- Failing: extensions/narayana-jta/deployment ! Skipped: extensions/agroal/deployment extensions/elytron-security-jdbc/deployment extensions/flyway/deployment and 157 more
📦 extensions/narayana-jta/deployment
✖
io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest.testObserverNotificationWithErrorThrowing
line 37 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest&tests.test=testObserverNotificationWithErrorThrowing>
- More details
<https://github.com/quarkusio/quarkus/runs/35944799131#user-content-test-failure-io.quarkus.narayana.observers.transactionalobserverserrorhandlingtest-1>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/extensions/narayana-jta/deployment/src/test/java/io/quarkus/narayana/observers/TransactionalObserversErrorHandlingTest.java#L37>
java.lang.IllegalStateException: This is an expected exception within test
at io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest$ObservingBean.observeAfterSuccess(TransactionalObserversErrorHandlingTest.java:50)
at io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest_ObservingBean_Observer_observeAfterSuccess_giN7BLeGxnhFWh0Ne3G-CSmHkbI.notify(Unknown Source)
at io.quarkus.arc.impl.EventImpl$Notifier.notifyObservers(EventImpl.java:365)
at io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:347)
at io.quarkus.arc.impl.EventImpl.fire(EventImpl.java:81)
at io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest.testObserverNotificationWithErrorThrowing(TransactionalObserversErrorHandlingTest.java:37)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
✖
io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionFailed
line 66 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversTest&tests.test=testTransactionFailed>
- More details
<https://github.com/quarkusio/quarkus/runs/35944799131#user-content-test-failure-io.quarkus.narayana.observers.transactionalobserverstest-2>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/extensions/narayana-jta/deployment/src/test/java/io/quarkus/narayana/observers/TransactionalObserversTest.java#L66>
jakarta.transaction.NotSupportedException: BaseTransaction.checkTransactionState - ARJUNA016051: thread is already associated with a transaction!
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.begin(BaseTransaction.java:51)
at io.quarkus.narayana.jta.runtime.NotifyingUserTransaction.begin(NotifyingUserTransaction.java:24)
at jakarta.transaction.NarayanaJtaProducers_ProducerMethod_userTransaction_7zPXeUWVelZ-AzCmqVtVVw94OtA_ClientProxy.begin(Unknown Source)
at io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionFailed(TransactionalObserversTest.java:66)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at io.quarkus.test.QuarkusUnitTest.runExtensionMethod(QuarkusUnitTest.java:513)
at io.quarkus.test.QuarkusUnitTest.interceptTestMethod(QuarkusUnitTest.java:427)
✖
io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionSuccessful
line 53 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversTest&tests.test=testTransactionSuccessful>
- More details
<https://github.com/quarkusio/quarkus/runs/35944799131#user-content-test-failure-io.quarkus.narayana.observers.transactionalobserverstest-3>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/extensions/narayana-jta/deployment/src/test/java/io/quarkus/narayana/observers/TransactionalObserversTest.java#L53>
org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31)
at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183)
at io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionSuccessful(TransactionalObserversTest.java:53)
------------------------------
⚙️ JVM Tests - JDK 17 Windows #
<#m_-8555759688960981563_user-content-test-failures-job-35931425318>
- Failing: extensions/narayana-jta/deployment ! Skipped: extensions/agroal/deployment extensions/elytron-security-jdbc/deployment extensions/flyway/deployment and 157 more
📦 extensions/narayana-jta/deployment
✖
io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest.testObserverNotificationWithErrorThrowing
line 37 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest&tests.test=testObserverNotificationWithErrorThrowing>
- More details
<https://github.com/quarkusio/quarkus/runs/35944799131#user-content-test-failure-io.quarkus.narayana.observers.transactionalobserverserrorhandlingtest-1>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/extensions/narayana-jta/deployment/src/test/java/io/quarkus/narayana/observers/TransactionalObserversErrorHandlingTest.java#L37>
java.lang.IllegalStateException: This is an expected exception within test
at io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest$ObservingBean.observeAfterSuccess(TransactionalObserversErrorHandlingTest.java:50)
at io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest_ObservingBean_Observer_observeAfterSuccess_giN7BLeGxnhFWh0Ne3G-CSmHkbI.notify(Unknown Source)
at io.quarkus.arc.impl.EventImpl$Notifier.notifyObservers(EventImpl.java:365)
at io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:347)
at io.quarkus.arc.impl.EventImpl.fire(EventImpl.java:81)
at io.quarkus.narayana.observers.TransactionalObserversErrorHandlingTest.testObserverNotificationWithErrorThrowing(TransactionalObserversErrorHandlingTest.java:37)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
✖
io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionFailed
line 66 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversTest&tests.test=testTransactionFailed>
- More details
<https://github.com/quarkusio/quarkus/runs/35944799131#user-content-test-failure-io.quarkus.narayana.observers.transactionalobserverstest-2>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/extensions/narayana-jta/deployment/src/test/java/io/quarkus/narayana/observers/TransactionalObserversTest.java#L66>
jakarta.transaction.NotSupportedException: BaseTransaction.checkTransactionState - ARJUNA016051: thread is already associated with a transaction!
at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.begin(BaseTransaction.java:51)
at io.quarkus.narayana.jta.runtime.NotifyingUserTransaction.begin(NotifyingUserTransaction.java:24)
at jakarta.transaction.NarayanaJtaProducers_ProducerMethod_userTransaction_7zPXeUWVelZ-AzCmqVtVVw94OtA_ClientProxy.begin(Unknown Source)
at io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionFailed(TransactionalObserversTest.java:66)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at io.quarkus.test.QuarkusUnitTest.runExtensionMethod(QuarkusUnitTest.java:513)
at io.quarkus.test.QuarkusUnitTest.interceptTestMethod(QuarkusUnitTest.java:427)
✖
io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionSuccessful
line 53 - History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversTest&tests.test=testTransactionSuccessful>
- More details
<https://github.com/quarkusio/quarkus/runs/35944799131#user-content-test-failure-io.quarkus.narayana.observers.transactionalobserverstest-3>
- Source on GitHub
<https://github.com/quarkusio/quarkus/blob/16a6d14f3c857bac13efc0e8a11cad4cba3778c8/extensions/narayana-jta/deployment/src/test/java/io/quarkus/narayana/observers/TransactionalObserversTest.java#L53>
org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31)
at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183)
at io.quarkus.narayana.observers.TransactionalObserversTest.testTransactionSuccessful(TransactionalObserversTest.java:53)
------------------------------
Flaky tests - Develocity <https://ge.quarkus.io/scans/tests> ⚙️ JVM Tests
- JDK 17 📦 extensions/narayana-jta/deployment
✖
io.quarkus.narayana.observers.TransactionalObserversTest.testOutsideTransaction
- History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversTest&tests.test=testOutsideTransaction>
- expected: <true> but was: <false> -
org.opentest4j.AssertionFailedError
org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31)
at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183)
at io.quarkus.narayana.observers.TransactionalObserversTest.testOutsideTransaction(TransactionalObserversTest.java:78)
------------------------------
⚙️ JVM Tests - JDK 21 📦 extensions/narayana-jta/deployment
✖
io.quarkus.narayana.observers.TransactionalObserversTest.testOutsideTransaction
- History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversTest&tests.test=testOutsideTransaction>
- expected: <true> but was: <false> -
org.opentest4j.AssertionFailedError
org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31)
at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183)
at io.quarkus.narayana.observers.TransactionalObserversTest.testOutsideTransaction(TransactionalObserversTest.java:78)
------------------------------
⚙️ JVM Tests - JDK 17 Windows 📦 extensions/narayana-jta/deployment
✖
io.quarkus.narayana.observers.TransactionalObserversTest.testOutsideTransaction
- History
<https://ge.quarkus.io/scans/tests?tests.container=io.quarkus.narayana.observers.TransactionalObserversTest&tests.test=testOutsideTransaction>
- expected: <true> but was: <false> -
org.opentest4j.AssertionFailedError
org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
at org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31)
at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183)
at io.quarkus.narayana.observers.TransactionalObserversTest.testOutsideTransaction(TransactionalObserversTest.java:78)
—
Reply to this email directly, view it on GitHub
<#45741 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABBMDP33WKILBXNQGXFOUCL2LZ3U3AVCNFSM6AAAAABVR5O2CWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMMBVGI3DEMRTGI>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
These have a small effect on startup time, so we let's remove them without losing any functionality
Should be fixed now |
This comment has been minimized.
This comment has been minimized.
Status for workflow
|
These have a small effect on startup time, so
we let's remove them without losing any functionality
Before this change, a flamegraph of hello world REST application looks like:
while after applying it, we have: